/**
 * electron-builder 配置文件
 * 用于定义应用打包的各项配置
 */
module.exports = {
  // 产品名称，将显示在安装程序和应用程序中
  "productName": "拓信IM",
  
  // 应用唯一标识，通常采用反向域名格式
  "appId": "com.electron.ee",
  
  // 版权信息，会显示在应用的关于页面和系统属性中
  "copyright": "© 2025 duola Technology Co., Ltd.",
  
  // 构建输出目录设置
  "directories": {
    // 打包输出路径
    "output": "out"
  },
  
  // 是否将应用程序打包成asar格式（一种压缩格式，提高性能并保护源码）
  "asar": true,
  
  // 打包时包含的文件
  "files": [
    // 包含所有文件
    "**/*",
    // 以下是排除的文件和目录（以!开头的模式表示排除）
    "!cmd/",     // 排除命令行工具目录
    "!data/",    // 排除数据目录
    "!electron/", // 排除electron源码目录
    "!frontend/", // 排除前端源码目录
    "!logs/",    // 排除日志目录
    "!out/",     // 排除输出目录
    "!go/",      // 排除Go语言相关目录
    "!python/"   // 排除Python相关目录
  ],
  
  // 额外的资源文件，这些文件会被复制到应用程序目录之外的位置
  "extraResources": {
    // 源路径
    "from": "build/extraResources/",
    // 目标路径（相对于应用程序目录）
    "to": "extraResources"
  },
  
  // NSIS安装程序配置（Windows平台特有）
  "nsis": {
    // 是否使用一键安装模式，false表示自定义安装
    "oneClick": false,
    
    // 是否允许请求管理员权限
    "allowElevation": true,
    
    // 是否允许用户更改安装目录
    "allowToChangeInstallationDirectory": true,
    
    // 安装程序图标路径
    "installerIcon": "build/icons/icon.ico",
    
    // 卸载程序图标路径
    "uninstallerIcon": "build/icons/icon.ico",
    
    // 安装程序头部图标路径
    "installerHeaderIcon": "build/icons/icon.ico",
    
    // 是否创建桌面快捷方式
    "createDesktopShortcut": true,
    
    // 是否创建开始菜单快捷方式
    "createStartMenuShortcut": true,
    
    // 快捷方式名称
    "shortcutName": "拓信IM"
  },
  
  // 发布配置，用于自动更新
  "publish": [
    {
      // 发布提供者类型
      "provider": "generic",
      
      // 更新服务器URL
      "url": "https://github.com/wallace5303/electron-egg"
    }
  ],
  
  // Windows平台特有配置
  "win": {
    // 应用图标路径
    "icon": "build/icons/icon.ico",
    
    // 输出文件名格式模板
    "artifactName": "${productName}-${os}-${version}-${arch}.${ext}",
    
    // 构建目标类型
    "target": [
      {
        // 使用NSIS安装程序打包
        "target": "nsis"
      }
    ],
    
    // 文件关联配置，定义应用可以打开的文件类型
    "fileAssociations": [],
    
    // 请求的执行级别，asInvoker表示使用启动进程的权限
    "requestedExecutionLevel": "asInvoker",
    
    // RFC 3161时间戳服务器URL，用于代码签名
    "rfc3161TimeStampServer": "",
    
    // 是否签名并编辑可执行文件，设为false避免元数据修改错误
    "signAndEditExecutable": false,
    
    // 签名哈希算法
    "signingHashAlgorithms": [
      "sha256"
    ],
    
    // 法律商标信息
    "legalTrademarks": "",
    
    // 是否验证更新包签名
    "verifyUpdateCodeSignature": false,
    
    // 是否签名DLL文件
    "signDlls": false
  },
  
  // 禁用代码压缩，方便调试
  "compression": "normal",
  
  // 启用开发者工具
  "extraMetadata": {
    "devTools": true
  },
  
  // asar配置
  "asarUnpack": [
    "**/*.node",
    "**/public/dist/**/*"
  ]
} 